<!DOCTYPE html>

<html>
  <head>
    <title>Protocol Documentation</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>
    <style>
      body {
        width: 60em;
        margin: 1em auto;
        color: #222;
        font-family: "Ubuntu", sans-serif;
        padding-bottom: 4em;
      }

      h1 {
        font-weight: normal;
        border-bottom: 1px solid #aaa;
        padding-bottom: 0.5ex;
      }

      h2 {
        border-bottom: 1px solid #aaa;
        padding-bottom: 0.5ex;
        margin: 1.5em 0;
      }

      h3 {
        font-weight: normal;
        border-bottom: 1px solid #aaa;
        padding-bottom: 0.5ex;
      }

      a {
        text-decoration: none;
        color: #567e25;
      }

      table {
        width: 100%;
        font-size: 80%;
        border-collapse: collapse;
      }

      thead {
        font-weight: 700;
        background-color: #dcdcdc;
      }

      tbody tr:nth-child(even) {
        background-color: #fbfbfb;
      }

      td {
        border: 1px solid #ccc;
        padding: 0.5ex 2ex;
      }

      td p {
        text-indent: 1em;
        margin: 0;
      }

      td p:nth-child(1) {
        text-indent: 0;  
      }

       
      .field-table td:nth-child(1) {  
        width: 10em;
      }
      .field-table td:nth-child(2) {  
        width: 10em;
      }
      .field-table td:nth-child(3) {  
        width: 6em;
      }
      .field-table td:nth-child(4) {  
        width: auto;
      }

       
      .extension-table td:nth-child(1) {  
        width: 10em;
      }
      .extension-table td:nth-child(2) {  
        width: 10em;
      }
      .extension-table td:nth-child(3) {  
        width: 10em;
      }
      .extension-table td:nth-child(4) {  
        width: 5em;
      }
      .extension-table td:nth-child(5) {  
        width: auto;
      }

       
      .enum-table td:nth-child(1) {  
        width: 10em;
      }
      .enum-table td:nth-child(2) {  
        width: 10em;
      }
      .enum-table td:nth-child(3) {  
        width: auto;
      }

       
      .scalar-value-types-table tr {
        height: 3em;
      }

       
      #toc-container ul {
        list-style-type: none;
        padding-left: 1em;
        line-height: 180%;
        margin: 0;
      }
      #toc > li > a {
        font-weight: bold;
      }

       
      .file-heading {
        width: 100%;
        display: table;
        border-bottom: 1px solid #aaa;
        margin: 4em 0 1.5em 0;
      }
      .file-heading h2 {
        border: none;
        display: table-cell;
      }
      .file-heading a {
        text-align: right;
        display: table-cell;
      }

       
      .badge {
        width: 1.6em;
        height: 1.6em;
        display: inline-block;

        line-height: 1.6em;
        text-align: center;
        font-weight: bold;
        font-size: 60%;

        color: #89ba48;
        background-color: #dff0c8;

        margin: 0.5ex 1em 0.5ex -1em;
        border: 1px solid #fbfbfb;
        border-radius: 1ex;
      }
    </style>

    
    <link rel="stylesheet" type="text/css" href="stylesheet.css"/>
  </head>

  <body>

    <h1 id="title">Protocol Documentation</h1>

    <h2>Table of Contents</h2>

    <div id="toc-container">
      <ul id="toc">
        
          
          <li>
            <a href="#jmash%2fdict%2fdict_rpc.proto">jmash/dict/dict_rpc.proto</a>
            <ul>
              
              
              
              
                <li>
                  <a href="#jmash.dict.Dict"><span class="badge">S</span>Dict</a>
                </li>
              
            </ul>
          </li>
        
        <li><a href="#scalar-value-types">Scalar Value Types</a></li>
      </ul>
    </div>

    
      
      <div class="file-heading">
        <h2 id="jmash/dict/dict_rpc.proto">jmash/dict/dict_rpc.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      

      

      

      
        <h3 id="jmash.dict.Dict">Dict</h3>
        <p>Dict Service</p>
        <table class="enum-table">
          <thead>
            <tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>version</td>
                <td><a href="#google.protobuf.Empty">.google.protobuf.Empty</a></td>
                <td><a href="#google.protobuf.StringValue">.google.protobuf.StringValue</a></td>
                <td><p>版本</p></td>
              </tr>
            
              <tr>
                <td>findEnumList</td>
                <td><a href="#google.protobuf.StringValue">.google.protobuf.StringValue</a></td>
                <td><a href="#jmash.protobuf.EnumValueList">.jmash.protobuf.EnumValueList</a></td>
                <td><p>枚举值列表</p></td>
              </tr>
            
              <tr>
                <td>findEnumMap</td>
                <td><a href="#google.protobuf.StringValue">.google.protobuf.StringValue</a></td>
                <td><a href="#jmash.protobuf.CustomEnumValueMap">.jmash.protobuf.CustomEnumValueMap</a></td>
                <td><p>枚举值Map</p></td>
              </tr>
            
              <tr>
                <td>findEnumEntry</td>
                <td><a href="#jmash.protobuf.EnumEntryReq">.jmash.protobuf.EnumEntryReq</a></td>
                <td><a href="#jmash.protobuf.EntryList">.jmash.protobuf.EntryList</a></td>
                <td><p>枚举值</p></td>
              </tr>
            
              <tr>
                <td>findDictEntryPage</td>
                <td><a href="#jmash.dict.DictEntryReq">DictEntryReq</a></td>
                <td><a href="#jmash.dict.DictEntryPage">DictEntryPage</a></td>
                <td><p>查询翻页信息数据字典</p></td>
              </tr>
            
              <tr>
                <td>findDictEntryList</td>
                <td><a href="#jmash.dict.DictEntryReq">DictEntryReq</a></td>
                <td><a href="#jmash.dict.DictEntryList">DictEntryList</a></td>
                <td><p>查询列表信息数据字典</p></td>
              </tr>
            
              <tr>
                <td>findDictEntryById</td>
                <td><a href="#jmash.dict.DictEntryKey">DictEntryKey</a></td>
                <td><a href="#jmash.dict.DictEntryModel">DictEntryModel</a></td>
                <td><p>查询数据字典</p></td>
              </tr>
            
              <tr>
                <td>createDictEntry</td>
                <td><a href="#jmash.dict.DictEntryCreateReq">DictEntryCreateReq</a></td>
                <td><a href="#jmash.dict.DictEntryModel">DictEntryModel</a></td>
                <td><p>创建实体数据字典</p></td>
              </tr>
            
              <tr>
                <td>updateDictEntry</td>
                <td><a href="#jmash.dict.DictEntryUpdateReq">DictEntryUpdateReq</a></td>
                <td><a href="#jmash.dict.DictEntryModel">DictEntryModel</a></td>
                <td><p>修改实体数据字典</p></td>
              </tr>
            
              <tr>
                <td>deleteDictEntry</td>
                <td><a href="#jmash.dict.DictEntryKey">DictEntryKey</a></td>
                <td><a href="#jmash.dict.DictEntryModel">DictEntryModel</a></td>
                <td><p>删除数据字典</p></td>
              </tr>
            
              <tr>
                <td>batchDeleteDictEntry</td>
                <td><a href="#jmash.dict.DictEntryKeyList">DictEntryKeyList</a></td>
                <td><a href="#google.protobuf.Int32Value">.google.protobuf.Int32Value</a></td>
                <td><p>批量删除数据字典</p></td>
              </tr>
            
              <tr>
                <td>moveDictEntry</td>
                <td><a href="#jmash.dict.DictEntryMoveKey">DictEntryMoveKey</a></td>
                <td><a href="#google.protobuf.BoolValue">.google.protobuf.BoolValue</a></td>
                <td><p>上移/下移</p></td>
              </tr>
            
              <tr>
                <td>enableDictEntry</td>
                <td><a href="#jmash.dict.DictEntryEnableKey">DictEntryEnableKey</a></td>
                <td><a href="#google.protobuf.BoolValue">.google.protobuf.BoolValue</a></td>
                <td><p>启用/禁用</p></td>
              </tr>
            
              <tr>
                <td>findDictLayEntryList</td>
                <td><a href="#jmash.dict.DictLayEntryReq">DictLayEntryReq</a></td>
                <td><a href="#jmash.dict.DictLayEntryList">DictLayEntryList</a></td>
                <td><p>查询列表信息层级字典实体</p></td>
              </tr>
            
              <tr>
                <td>findDictLayEntryById</td>
                <td><a href="#jmash.dict.DictLayEntryKey">DictLayEntryKey</a></td>
                <td><a href="#jmash.dict.DictLayEntryModel">DictLayEntryModel</a></td>
                <td><p>查询层级字典实体</p></td>
              </tr>
            
              <tr>
                <td>createDictLayEntry</td>
                <td><a href="#jmash.dict.DictLayEntryCreateReq">DictLayEntryCreateReq</a></td>
                <td><a href="#jmash.dict.DictLayEntryModel">DictLayEntryModel</a></td>
                <td><p>创建实体层级字典实体</p></td>
              </tr>
            
              <tr>
                <td>updateDictLayEntry</td>
                <td><a href="#jmash.dict.DictLayEntryUpdateReq">DictLayEntryUpdateReq</a></td>
                <td><a href="#jmash.dict.DictLayEntryModel">DictLayEntryModel</a></td>
                <td><p>修改实体层级字典实体</p></td>
              </tr>
            
              <tr>
                <td>deleteDictLayEntry</td>
                <td><a href="#jmash.dict.DictLayEntryKey">DictLayEntryKey</a></td>
                <td><a href="#jmash.dict.DictLayEntryModel">DictLayEntryModel</a></td>
                <td><p>删除层级字典实体</p></td>
              </tr>
            
              <tr>
                <td>batchDeleteDictLayEntry</td>
                <td><a href="#jmash.dict.DictLayEntryKeyList">DictLayEntryKeyList</a></td>
                <td><a href="#google.protobuf.Int32Value">.google.protobuf.Int32Value</a></td>
                <td><p>批量删除层级字典实体</p></td>
              </tr>
            
              <tr>
                <td>moveDictLayEntry</td>
                <td><a href="#jmash.dict.DictLayEntryMoveKey">DictLayEntryMoveKey</a></td>
                <td><a href="#google.protobuf.BoolValue">.google.protobuf.BoolValue</a></td>
                <td><p>上移/下移</p></td>
              </tr>
            
              <tr>
                <td>enableDictLayEntry</td>
                <td><a href="#jmash.dict.DictLayEntryEnableKey">DictLayEntryEnableKey</a></td>
                <td><a href="#google.protobuf.BoolValue">.google.protobuf.BoolValue</a></td>
                <td><p>启用/禁用</p></td>
              </tr>
            
              <tr>
                <td>findDictTypePage</td>
                <td><a href="#jmash.dict.DictTypeReq">DictTypeReq</a></td>
                <td><a href="#jmash.dict.DictTypePage">DictTypePage</a></td>
                <td><p>查询翻页信息字典类型</p></td>
              </tr>
            
              <tr>
                <td>findDictTypeList</td>
                <td><a href="#jmash.dict.DictTypeReq">DictTypeReq</a></td>
                <td><a href="#jmash.dict.DictTypeList">DictTypeList</a></td>
                <td><p>查询列表信息字典类型</p></td>
              </tr>
            
              <tr>
                <td>findDictTypeById</td>
                <td><a href="#jmash.dict.DictTypeKey">DictTypeKey</a></td>
                <td><a href="#jmash.dict.DictTypeModel">DictTypeModel</a></td>
                <td><p>查询字典类型</p></td>
              </tr>
            
              <tr>
                <td>createDictType</td>
                <td><a href="#jmash.dict.DictTypeCreateReq">DictTypeCreateReq</a></td>
                <td><a href="#jmash.dict.DictTypeModel">DictTypeModel</a></td>
                <td><p>创建实体字典类型</p></td>
              </tr>
            
              <tr>
                <td>updateDictType</td>
                <td><a href="#jmash.dict.DictTypeUpdateReq">DictTypeUpdateReq</a></td>
                <td><a href="#jmash.dict.DictTypeModel">DictTypeModel</a></td>
                <td><p>修改实体字典类型</p></td>
              </tr>
            
              <tr>
                <td>deleteDictType</td>
                <td><a href="#jmash.dict.DictTypeKey">DictTypeKey</a></td>
                <td><a href="#jmash.dict.DictTypeModel">DictTypeModel</a></td>
                <td><p>删除字典类型</p></td>
              </tr>
            
              <tr>
                <td>batchDeleteDictType</td>
                <td><a href="#jmash.dict.DictTypeKeyList">DictTypeKeyList</a></td>
                <td><a href="#google.protobuf.Int32Value">.google.protobuf.Int32Value</a></td>
                <td><p>批量删除字典类型</p></td>
              </tr>
            
              <tr>
                <td>moveDictType</td>
                <td><a href="#jmash.dict.DictTypeMoveKey">DictTypeMoveKey</a></td>
                <td><a href="#google.protobuf.BoolValue">.google.protobuf.BoolValue</a></td>
                <td><p>上移/下移</p></td>
              </tr>
            
              <tr>
                <td>enableDictType</td>
                <td><a href="#jmash.dict.DictTypeEnableKey">DictTypeEnableKey</a></td>
                <td><a href="#google.protobuf.BoolValue">.google.protobuf.BoolValue</a></td>
                <td><p>启用/禁用</p></td>
              </tr>
            
              <tr>
                <td>downloadDictType</td>
                <td><a href="#jmash.dict.DictTypeExportReq">DictTypeExportReq</a></td>
                <td><a href="#google.api.HttpBody">.google.api.HttpBody</a> stream</td>
                <td><p>下载导入模板字典类型</p></td>
              </tr>
            
              <tr>
                <td>importDictType</td>
                <td><a href="#jmash.dict.DictTypeImportReq">DictTypeImportReq</a></td>
                <td><a href="#google.protobuf.StringValue">.google.protobuf.StringValue</a></td>
                <td><p>导入字典类型</p></td>
              </tr>
            
              <tr>
                <td>exportDictType</td>
                <td><a href="#jmash.dict.DictTypeExportReq">DictTypeExportReq</a></td>
                <td><a href="#google.api.HttpBody">.google.api.HttpBody</a> stream</td>
                <td><p>导出字典类型</p></td>
              </tr>
            
          </tbody>
        </table>

        
          
          
          <h4>Methods with HTTP bindings</h4>
          <table>
            <thead>
              <tr>
                <td>Method Name</td>
                <td>Method</td>
                <td>Pattern</td>
                <td>Body</td>
              </tr>
            </thead>
            <tbody>
            
              
              
              <tr>
                <td>version</td>
                <td>GET</td>
                <td>/v1/dict/version</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>findEnumEntry</td>
                <td>GET</td>
                <td>/v1/dict/enum/entry</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>findDictEntryPage</td>
                <td>GET</td>
                <td>/v1/dict/dict_entry/page/{tenant}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>findDictEntryList</td>
                <td>GET</td>
                <td>/v1/dict/dict_entry/list/{tenant}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>findDictEntryById</td>
                <td>GET</td>
                <td>/v1/dict/dict_entry/id/{tenant}/{type_code}/{dict_code}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>createDictEntry</td>
                <td>POST</td>
                <td>/v1/dict/dict_entry</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>updateDictEntry</td>
                <td>PATCH</td>
                <td>/v1/dict/dict_entry</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>deleteDictEntry</td>
                <td>DELETE</td>
                <td>/v1/dict/dict_entry/id</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>batchDeleteDictEntry</td>
                <td>PUT</td>
                <td>/v1/dict/dict_entry/batch</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>moveDictEntry</td>
                <td>PUT</td>
                <td>/v1/dict/dict_entry/move</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>enableDictEntry</td>
                <td>PUT</td>
                <td>/v1/dict/dict_entry/enable</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>findDictLayEntryList</td>
                <td>GET</td>
                <td>/v1/dict/dict_lay_entry/list/{tenant}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>findDictLayEntryById</td>
                <td>GET</td>
                <td>/v1/dict/dict_lay_entry/id/{tenant}/{dict_id}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>createDictLayEntry</td>
                <td>POST</td>
                <td>/v1/dict/dict_lay_entry</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>updateDictLayEntry</td>
                <td>PATCH</td>
                <td>/v1/dict/dict_lay_entry</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>deleteDictLayEntry</td>
                <td>DELETE</td>
                <td>/v1/dict/dict_lay_entry/id</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>batchDeleteDictLayEntry</td>
                <td>PUT</td>
                <td>/v1/dict/dict_lay_entry/batch</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>moveDictLayEntry</td>
                <td>PUT</td>
                <td>/v1/dict/dict_lay_entry/move</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>enableDictLayEntry</td>
                <td>PUT</td>
                <td>/v1/dict/dict_lay_entry/enable</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>findDictTypePage</td>
                <td>GET</td>
                <td>/v1/dict/dict_type/page/{tenant}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>findDictTypeList</td>
                <td>GET</td>
                <td>/v1/dict/dict_type/list/{tenant}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>findDictTypeById</td>
                <td>GET</td>
                <td>/v1/dict/dict_type/id/{tenant}/{type_code}</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>createDictType</td>
                <td>POST</td>
                <td>/v1/dict/dict_type</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>updateDictType</td>
                <td>PATCH</td>
                <td>/v1/dict/dict_type</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>deleteDictType</td>
                <td>DELETE</td>
                <td>/v1/dict/dict_type/id</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>batchDeleteDictType</td>
                <td>PUT</td>
                <td>/v1/dict/dict_type/batch</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>moveDictType</td>
                <td>PUT</td>
                <td>/v1/dict/dict_type/move</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>enableDictType</td>
                <td>PUT</td>
                <td>/v1/dict/dict_type/enable</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>downloadDictType</td>
                <td>GET</td>
                <td>/v1/dict/dict_type/{tenant}/template.xlsx</td>
                <td></td>
              </tr>
              
            
              
              
              <tr>
                <td>importDictType</td>
                <td>PATCH</td>
                <td>/v1/dict/dict_type/import</td>
                <td>*</td>
              </tr>
              
            
              
              
              <tr>
                <td>exportDictType</td>
                <td>GET</td>
                <td>/v1/dict/dict_type/{tenant}/dict_types.xlsx</td>
                <td></td>
              </tr>
              
            
            </tbody>
          </table>
          
        
    

    <h2 id="scalar-value-types">Scalar Value Types</h2>
    <table class="scalar-value-types-table">
      <thead>
        <tr><td>.proto Type</td><td>Notes</td><td>C++</td><td>Java</td><td>Python</td><td>Go</td><td>C#</td><td>PHP</td><td>Ruby</td></tr>
      </thead>
      <tbody>
        
          <tr id="double">
            <td>double</td>
            <td></td>
            <td>double</td>
            <td>double</td>
            <td>float</td>
            <td>float64</td>
            <td>double</td>
            <td>float</td>
            <td>Float</td>
          </tr>
        
          <tr id="float">
            <td>float</td>
            <td></td>
            <td>float</td>
            <td>float</td>
            <td>float</td>
            <td>float32</td>
            <td>float</td>
            <td>float</td>
            <td>Float</td>
          </tr>
        
          <tr id="int32">
            <td>int32</td>
            <td>Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.</td>
            <td>int32</td>
            <td>int</td>
            <td>int</td>
            <td>int32</td>
            <td>int</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="int64">
            <td>int64</td>
            <td>Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.</td>
            <td>int64</td>
            <td>long</td>
            <td>int/long</td>
            <td>int64</td>
            <td>long</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="uint32">
            <td>uint32</td>
            <td>Uses variable-length encoding.</td>
            <td>uint32</td>
            <td>int</td>
            <td>int/long</td>
            <td>uint32</td>
            <td>uint</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="uint64">
            <td>uint64</td>
            <td>Uses variable-length encoding.</td>
            <td>uint64</td>
            <td>long</td>
            <td>int/long</td>
            <td>uint64</td>
            <td>ulong</td>
            <td>integer/string</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="sint32">
            <td>sint32</td>
            <td>Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.</td>
            <td>int32</td>
            <td>int</td>
            <td>int</td>
            <td>int32</td>
            <td>int</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="sint64">
            <td>sint64</td>
            <td>Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.</td>
            <td>int64</td>
            <td>long</td>
            <td>int/long</td>
            <td>int64</td>
            <td>long</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="fixed32">
            <td>fixed32</td>
            <td>Always four bytes. More efficient than uint32 if values are often greater than 2^28.</td>
            <td>uint32</td>
            <td>int</td>
            <td>int</td>
            <td>uint32</td>
            <td>uint</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="fixed64">
            <td>fixed64</td>
            <td>Always eight bytes. More efficient than uint64 if values are often greater than 2^56.</td>
            <td>uint64</td>
            <td>long</td>
            <td>int/long</td>
            <td>uint64</td>
            <td>ulong</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="sfixed32">
            <td>sfixed32</td>
            <td>Always four bytes.</td>
            <td>int32</td>
            <td>int</td>
            <td>int</td>
            <td>int32</td>
            <td>int</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="sfixed64">
            <td>sfixed64</td>
            <td>Always eight bytes.</td>
            <td>int64</td>
            <td>long</td>
            <td>int/long</td>
            <td>int64</td>
            <td>long</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="bool">
            <td>bool</td>
            <td></td>
            <td>bool</td>
            <td>boolean</td>
            <td>boolean</td>
            <td>bool</td>
            <td>bool</td>
            <td>boolean</td>
            <td>TrueClass/FalseClass</td>
          </tr>
        
          <tr id="string">
            <td>string</td>
            <td>A string must always contain UTF-8 encoded or 7-bit ASCII text.</td>
            <td>string</td>
            <td>String</td>
            <td>str/unicode</td>
            <td>string</td>
            <td>string</td>
            <td>string</td>
            <td>String (UTF-8)</td>
          </tr>
        
          <tr id="bytes">
            <td>bytes</td>
            <td>May contain any arbitrary sequence of bytes.</td>
            <td>string</td>
            <td>ByteString</td>
            <td>str</td>
            <td>[]byte</td>
            <td>ByteString</td>
            <td>string</td>
            <td>String (ASCII-8BIT)</td>
          </tr>
        
      </tbody>
    </table>
  </body>
</html>

